<!-- begin vid_s5kfbd6rhc 自定义模板_498yv74w10 -->
<a-modal
  @cancel="statuState.visible = false"
  centered
  :visible="statuState.visible"
  title="审批详情"
  :footer="null"
>
<div class="status-item" v-for="(item, index) in statuState.list">
  <div class="title-new-status">
    <div class="left-title"
    >审批类型:<span class="weight-status">{{ item.processName }}</span></div
    >
    <div class="right-title"
    >审批提交时间:<span class="weight-status">{{ item.createdDate }}</span></div
    >
  </div>
  <a-steps class="status-step" direction="vertical">
    <a-step
      v-for="(inside, index) in item.processTaskList"
      :title="inside.assignStatus === 'HANDLED' ? '处理完成' : '正在处理'"
      :description="inside.taskName + ':' + inside.assignUserName"
      :status="inside.assignStatus === 'HANDLED' ? 'finish' : 'process'"
    />
  </a-steps>
</div>
</a-modal>
<a-spin :spinning="stateLi.spinning">
<div class="my-page">
  <div class="content-box">
    <div class="right-table">
      <div class="search">
        <a-form>
          <a-row style="height:40px">
            <a-col :span="5">
              <a-form-item label="计划结束日期" :label-col="{span: 9}">
                <a-date-picker v-model:value="stateLi.filterLi.endTime" valueFormat="YYYY-MM-DD" />
              </a-form-item>
            </a-col>
            <a-col :span="5">
              <a-form-item label="任务负责人" :label-col="{span: 9}">
                <a-select
                  v-model:value="stateLi.filterLi.taskOwner"
                  showSearch
                  @focus=" dataConnector_conn_edgeb535s2()"
                  allowClear
                  :options="peopleList"
                  :field-names="{ label: 'label', value: 'value' }"
                  :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
            <a-col :span="5">
              <a-form-item label="任务开关" :label-col="{span: 9}">
                <a-select
                  v-model:value="stateLi.filterLi.taskStatusOnOrOff"
                  showSearch
                  allowClear
                  :options="[
{ label: '全部', value: '全部' },
{ label: '开启', value: 'true' },
{ label: '关闭', value: 'false' }
]"
                />
              </a-form-item>
            </a-col>
            <a-col :span="5">
              <a-form-item label="任务状态" :label-col="{span: 9}">
                <a-select
                  v-model:value="stateLi.filterLi.taskStatusList"
                  mode="multiple"
                  showArrow="true"
                  showSearch
                  allowClear
                  :options="[
{ label: '未启动', value: '未启动' },
{ label: '进行中', value: '进行中' },
{ label: '完成', value: '完成' },
{ label: '延期', value: '延期' },
{ label: '延期完成', value: '延期完成' },
{ label: '审批中', value: '审批中' }
]"
                />
              </a-form-item>
            </a-col>

            <a-col :span="4" style="display: flex;justify-content: end;">
              <a-form-item>
                <a-button type="primary" class="mr16 ml10" @click="getTableData"> 查询 </a-button>
                <!-- <a-button style="margin-right:8px" @click="resetSearch">重置</a-button> -->
                <a-button type="primary" ghost :disabled="!projectId" @click="handlerAdd" class="task-btn"> 新建 </a-button>
              </a-form-item>
            </a-col>
          </a-row>
        </a-form>
      </div>
      <div class="table-box">
        <a-table
          bordered
          rowKey="taskId"
          :loading="stateLi.tableLoading"
          :customRow="customRow"
          :columns="stateLi.columns"
          :data-source="stateLi.dataList"
          :pagination="false"
          :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)"
          :scroll="{ x: scrollX, y: stateLi.dataList.length ? '660px' : '' }"
          @resizeColumn="handleTaskResizeColumn"
        >
          <template #bodyCell="{ column, record, text }">
            <!--                                新-任务进度-->
            <template v-if="column.dataIndex === 'taskSchedule'">
              <a-progress :percent="record.taskSchedule" status="active"
                          @click="changeTaskSchedule(record.operationFlag ,record.taskSchedule,record.taskId,record.taskStatus)" />
            </template>
            <template v-if="column.dataIndex === 'taskStatusOnOrOff'">
              <a-switch v-model:checked="record['taskStatusOnOrOff']" :disabled="record.children && record.children.length" @change="changeTaskStatusOnOrOff(record)" />
            </template>
            <template v-if="column.dataIndex === 'milepostName'">
              {{text}}
              <!-- <a-tooltip :overlayStyle='taskOverlayStyle'>
<template #title>{{text}}</template>
<span  class='task-milepostName'>{{text}}</span>
</a-tooltip> -->
            </template>
            <template v-if="column.dataIndex === 'taskStatus'">
              <div class="task-status-new" @click="getTaskStatus(record.taskId,0)">
                <div class="wqd-btn" v-if="text==='未启动'">未启动</div>
                <div class="jxz-btn" v-else-if="text==='进行中'">进行中</div>
                <div class="wc-btn" v-else-if="text==='完成'">完成</div>
                <div class="yq-btn" v-else-if="text==='延期'" color="#F5222D">延期</div>
                <div class="yqwc-btn" v-else-if="text==='延期完成'" color="#FAAD14">延期完成</div>
                <div class="spz-btn" v-else-if="text==='审批中'" color="#FAAD14">审批中</div>
                <div class="wqd-btn" v-else-if="text==='下线'" color="#FAAD14">下线</div>
                <div v-else>{{text}}</div>
              </div>
            </template>
            <template v-if="column.dataIndex === 'operation'">
              <a-space>
                <a-button size="small" type="link" @click="beforeOk(record)">完成</a-button>
                <a-divider style="margin:0;border-color: #3875FF" type="vertical" />
                <a-button size="small" type="link" :disabled="record.disabledEditBtn" @click="handlerEdit(record)">编辑</a-button>
                <a-divider style="margin:0;border-color: #3875FF" type="vertical" />

                <a-dropdown>
                  <template #overlay>
                    <a-menu @click="handleMenuClick">
                      <a-menu-item key="1">
                        <a-popconfirm title="确定要删除吗？" :disabled="record.disabledDelBtn" @confirm="handlerDelete(record)">
                          <a-button size="small" :disabled="record.disabledDelBtn" type="link">删除</a-button>
                        </a-popconfirm>
                      </a-menu-item>
                      <a-menu-item key="2">
                        <a-button size="small" type="link" @click="handlerWarning(record)"> 预警
                        </a-button>
                      </a-menu-item>
                      <a-menu-item key="3">
                        <a-button size="small" type="link" :disabled="record.disabledNoteBtn"
                                  @click="handlerShowNotes(record)"> 历史备注
                        </a-button>
                      </a-menu-item>
                    </a-menu>
                  </template>
                  <a-button size="small" type="link">
                    更多
                    <DownOutlined />
                  </a-button>
                </a-dropdown>
              </a-space>
            </template>
          </template>
        </a-table>
      </div>
    </div>
  </div>

  <a-modal
    :visible="stateLi.visible"
    title="新建任务"
    destroyOnClose
    centered
    width="50%"
    :ok-button-props="{ disabled: btnLoading }"
    :getContainer="getModalContainer"
    @cancel="handlerCancel"
    @ok="handlerSubmit"
  >
    <a-form ref="formRef" :model="stateLi.ppmTaskFromList">
      <div v-for="(item, index) in stateLi.ppmTaskFromList" :key="index" class="form-item">
        <div class="form-content">
          <a-row class="one-line">
            <a-col :span="24">
              <a-form-item
                label="任务名称"
                :name="[index, 'taskName']"
                :rules="[
{
required: true,
message: '请输入任务名称!'
},
{
validator: () => {
if (stateLi.ppmTaskFromList[index].taskName) {
if (stateLi.ppmTaskFromList[index].taskName.trim()) {
return PromiseProxy.resolve()
} else {
return PromiseProxy.reject('请输入任务名称!')
}
} else {
return PromiseProxy.resolve()
}
}
}
]"
              >
                <a-input placeholder="请输入任务名称" v-model:value="stateLi.ppmTaskFromList[index].taskName" />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="12">
              <a-form-item label="任务优先级" :name="[index, 'priority']" :rules="{ required: true, message: '请选择任务优先级!' }">
                <a-select
                  v-model:value="stateLi.ppmTaskFromList[index].priority"
                  showSearch
                  placeholder="请选择项目阶段"
                  :options="[
{ label: '最高', value: 'HIGHEST' },
{ label: '高', value: 'HIGH' },
{ label: '中', value: 'MEDIUM' },
{ label: '低', value: 'LOW' },
{ label: '最低', value: 'LOWEST' }
]"
                />
              </a-form-item>
            </a-col>
            <a-col :span="12">
              <a-form-item label="项目阶段" :name="[index, 'milepostId']" :rules="{ required: true, message: '请选择项目阶段!' }">
                <a-select
                  placeholder="请选择项目阶段"
                  v-model:value="stateLi.ppmTaskFromList[index].milepostId"
                  showSearch
                  :options="stateLi.milepostList"
                  :field-names="{ label: 'milepostName', value: 'milepostId' }"
                  @focus="getMilepostList"
                  @change="handlerMilepostIdChange(index)"
                  :filter-option="
(input, option) => {
return option.milepostName.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="12">
              <a-form-item label="父级任务">
                <a-tree-select
                  placeholder="请选择父级任务"
                  v-model:value="stateLi.ppmTaskFromList[index].parentId"
                  allowClear
                  showSearch
                  :tree-data="stateLi.parentListMap[index]"
                  :field-names="{ label: 'taskName', value: 'taskId' }"
                  :filter-option="
(input, option) => {
return option.taskName.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
            <a-col :span="12">
              <a-form-item label="依赖任务">
                <a-select
                  placeholder="请选择依赖任务"
                  v-model:value="stateLi.ppmTaskFromList[index].taskDependency"
                  allowClear
                  showSearch
                  :options="stateLi.taskList"
                  @focus="getTaskList()"
                  :field-names="{ label: 'taskName', value: 'taskId' }"
                  :filter-option="
(input, option) => {
return option.taskName.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="12">
              <a-form-item label="任务类型" :name="[index, 'taskType']" :rules="{ required: true, message: '请选择任任务类型!' }">
                <a-select
                  placeholder="请选择任务类型"
                  v-model:value="stateLi.ppmTaskFromList[index].taskType"
                  showSearch
                  :options="[
{ label: '主任务', value: '主任务' },
{ label: '辅助任务', value: '辅助任务' },
{ label: '其他任务', value: '其他任务' }
]"
                />
              </a-form-item>
            </a-col>
            <a-col :span="12">
              <a-form-item label="任务负责人" :name="[index, 'taskOwner']" :rules="{ required: true, message: '请选择任务负责人!' }">
                <a-select
                  placeholder="请选择任务负责人"
                  v-model:value="stateLi.ppmTaskFromList[index].taskOwner"
                  showSearch
                  :options="peopleList"
                  :field-names="{ label: 'label', value: 'value' }"
                  :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="12">
              <a-form-item
                label="预计投入工时"
                :name="[index, 'workingHours']"
                :rules="[
{ required: true, message: '请输入预计投入工时!', trigger: 'blur' },
{ pattern: /^(0\.5|[1-9](\d*)?(\.5)?(\.0)?)$/, message: '请输入大于0的数字(支持0.5的倍数)', trigger: 'blur' }
]"
              >
                <a-input placeholder="请输入工时(支持0.5的数字)" v-model:value="stateLi.ppmTaskFromList[index].workingHours" :min="0" type="number" suffix="小时" />
              </a-form-item>
            </a-col>
            <a-col :span="12">
              <a-form-item label="任务起止时间" :name="[index, 'allTime']" :rules="{ required: true, message: '请选择任务起止时间!' }">
                <a-range-picker v-model:value="stateLi.ppmTaskFromList[index].allTime" valueFormat="YYYY-MM-DD" />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="12">
              <a-form-item label="审核员" :name="[index, 'assessorName']" :rules="{ required: true, message: '请选择审核员!' }">
                <a-select
                  placeholder="请选择审核员"
                  v-model:value="stateLi.ppmTaskFromList[index].assessorName"
                  showSearch
                  :options="peopleList"
                  :field-names="{ label: 'label', value: 'value' }"
                  :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
            <a-col :span="12">
              <a-form-item label="是否必须提交输出物" :name="[index, 'output']" :rules="{ required: true, message: '请选择是否必须提交输出物!' }">
                <a-select
                  placeholder="请选择是否必须提交输出物"
                  v-model:value="stateLi.ppmTaskFromList[index].output"
                  showSearch
                  :options="[
{ label: '是', value: '是' },
{ label: '否', value: '否' }
]"
                />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row class="one-line">
            <a-col :span="24">
              <a-form-item label="任务参与人" :name="[index, 'taskParticipantList']" :rules="{ required: true, message: '请选择任务参与人!' }">
                <a-select
                  placeholder="请选择任务参与人"
                  v-model:value="stateLi.ppmTaskFromList[index].taskParticipantList"
                  showSearch
                  mode="multiple"
                  :options="peopleList"
                  :field-names="{ label: 'label', value: 'value' }"
                  :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
                />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col v-if="taskPeopleList.length>0">
              <div style="width:700px;margin-left:115px;margin-bottom:28px">
                <a href="javascript:;" v-for="(item,num) in taskPeopleList" @click="handlerAddPeople(item.value,index)"
                ><span style="margin:0 5px">{{item.value}}</span></a
                >
              </div>
            </a-col>
          </a-row>
          <a-row class="one-line">
            <a-col :span="24">
              <a-form-item label="验收标准">
                <a-textarea v-model:value="stateLi.ppmTaskFromList[index].acceptanceCriteria" placeholder="请输入验收标准" />
              </a-form-item>
            </a-col>
          </a-row>
          <a-row class="one-line">
            <a-col :span="24">
              <a-form-item label="备注">
                <a-textarea placeholder="请输入备注" v-model:value="stateLi.ppmTaskFromList[index].description" />
              </a-form-item>
            </a-col>
          </a-row>
        </div>
        <a class="del" @click="handlerDeleteFormItem(index)">删除</a>
      </div>
    </a-form>
    <a-button type="primary" ghost class="add-btn" @click="handlerAddFormItem">
      <plus-outlined />
      添加
    </a-button>
  </a-modal>
  <!--                      修改任务进度-->
  <a-modal :visible="stateLi.taskScheduleVisible" title="编辑任务进度" @ok="taskScheduleSubmit"
           @cancel="stateLi.taskScheduleVisible=false">
    <a-form ref="taskScheduleRef" :model="stateLi.taskScheduleModel">
      <a-form-item name="taskSchedule" label="任务进度"
                   :rules="[{required:true,message:'请输入任务进度',trigger:'blur'}]">
        <a-input-number v-model:value="stateLi.taskScheduleModel.taskSchedule" :min=0 max="100"
                        :precision="0"
                        style="width:100%"></a-input-number>
      </a-form-item>
    </a-form>
  </a-modal>
  <!--                      修改任务进度-->
  <!--                      模板项目-风险预警-->
  <a-modal v-model:visible="stateLi.warringVisible" title="新增任务风险" @ok="handleTemplateRiskOk"
  >
    <a-form :model="stateLi.templateRisk" ref="templateRiskRef">
      <a-row>
        <a-col :span="24">
          <a-form-item label="任务名称" name="taskName"
                       :rules="[{required:true,message:'请输入任务名称',trigger:'blur'}]">
            <a-input v-model:value="stateLi.templateRisk.taskName" disabled></a-input>
          </a-form-item>
        </a-col>
        <a-col :span="24">
          <a-form-item label="风险描述" name="riskDescription"
                       :rules="[{required:true,message:'请输入风险描述',trigger:'blur'}]">
            <a-input v-model:value="stateLi.templateRisk.riskDescription"></a-input>
          </a-form-item>
        </a-col>
        <a-col :span="24">
          <a-form-item label="解决方案" name="solution"
                       :rules="[{required:true,message:'请输入解决方案',trigger:'blur'}]">
            <a-input v-model:value="stateLi.templateRisk.solution"></a-input>
          </a-form-item>
        </a-col>
      </a-row>
    </a-form>
  </a-modal>
  <!--                      end模板项目-风险预警-->
  <a-modal
    :visible="stateLi.editVisible"
    title="编辑任务"
    centered
    destroyOnClose
    width="45%"
    :ok-button-props="{ disabled: btnLoading }"
    :bodyStyle="{ padding: '24px 24px 0' }"
    @cancel="stateLi.editVisible = false"
    @ok="handlerUpdate"
    :getContainer="getModalContainer"
  >
    <a-form ref="editFormRef" :model="current">
      <div class="form-content edit-form-content">
        <a-row class="one-line">
          <a-col :span="24">
            <a-form-item label="任务名称" name="taskName" :rules="{ required: true, message: '请输入任务名称!' }">
              <a-input placeholder="请输入任务名称" v-model:value="current.taskName" />
            </a-form-item>
          </a-col>
        </a-row>

        <!-- 后端支持后放开 -->
        <!--
<a-row>
<a-col :span="24">
<a-form-item label="父级任务">
<a-tree-select
v-model:value="current.parentId"
allowClear
showSearch
:tree-data="editParentList"
:field-names="{ label: 'taskName', value: 'taskId' }"
:filter-option="
(input, option) => {
return option.taskName.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
/>
</a-form-item>
</a-col>
</a-row> -->

        <a-row>
          <a-col :span="12">
            <a-form-item label="任务类型" name="taskType" :rules="{ required: true, message: '请选择任任务类型!' }">
              <a-select
                placeholder="请选择任务类型"
                v-model:value="current.taskType"
                showSearch
                :options="[
{ label: '主任务', value: '主任务' },
{ label: '辅助任务', value: '辅助任务' },
{ label: '其他任务', value: '其他任务' }
]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="任务优先级" name="priority" :rules="{ required: true, message: '请选择任务优先级!' }">
              <a-select
                placeholder="请选择任务优先级"
                v-model:value="current.priority"
                showSearch
                :options="[
{ label: '最高', value: 'HIGHEST' },
{ label: '高', value: 'HIGH' },
{ label: '中', value: 'MEDIUM' },
{ label: '低', value: 'LOW' },
{ label: '最低', value: 'LOWEST' }
]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="12">
            <a-form-item label="依赖任务">
              <a-select
                placeholder="请选择依赖任务"
                v-model:value="current.taskDependency"
                allowClear
                showSearch
                :options="stateLi.taskList"
                @focus="getTaskList()"
                :field-names="{ label: 'taskName', value: 'taskId' }"
                :filter-option="
(input, option) => {
return option.taskName.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="预计投入工时"
              name="workingHours"
              :rules="[
{ required: true, message: '请输入预计投入工时!', trigger: 'blur' },
{ pattern: /^(0\.5|[1-9](\d*)?(\.5)?(\.0)?)$/, message: '请输入大于0的数字(支持0.5的倍数)', trigger: 'blur' }
]"
            >
              <a-input placeholder="请输入工时(支持0.5的数字)" v-model:value="current.workingHours" type="number" suffix="小时" />
            </a-form-item>
          </a-col>
        </a-row>

        <a-row>
          <a-col :span="12">
            <a-form-item label="任务负责人" name="taskOwner" :rules="{ required: true, message: '请选择任务负责人!' }">
              <a-select
                placeholder="请选择任务负责人"
                v-model:value="current.taskOwner"
                showSearch
                :options="peopleList"
                :field-names="{ label: 'label', value: 'value' }"
                :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="任务起止时间" name="allTime" :rules="{ required: true, message: '请选择任务起止时间!' }">
              <a-range-picker v-model:value="current.allTime" valueFormat="YYYY-MM-DD" />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="12">
            <a-form-item label="审核员" name="assessorName" :rules="{ required: true, message: '请选择审核员!' }">
              <a-select
                placeholder="请选择审核员"
                v-model:value="current.assessorName"
                showSearch
                :options="peopleList"
                :field-names="{ label: 'label', value: 'value' }"
                :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="是否必须提交输出物" name="output" :rules="{ required: true, message: '请选择是否必须提交输出物!' }">
              <a-select
                placeholder="请选择是否必须提交输出物"
                v-model:value="current.output"
                showSearch
                :options="[
{ label: '是', value: '是' },
{ label: '否', value: '否' }
]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row class="one-line">
          <a-col :span="24">
            <a-form-item label="任务参与人" name="taskParticipantList" :rules="{ required: true, message: '请选择任务参与人!' }">
              <a-select
                placeholder="请选择任务参与人"
                v-model:value="current.taskParticipantList"
                showSearch
                mode="multiple"
                :options="peopleList"
                :field-names="{ label: 'label', value: 'value' }"
                :filter-option="
(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
"
              />
            </a-form-item>
          </a-col>
          <a-col v-if="taskPeopleList.length>0">
            <div style="width:700px;margin-left:115px;margin-bottom:28px">
              <a href="javascript:;" v-for="(item,num) in taskPeopleList" @click="handlerEditPeople(item.value,index)"
              ><span style="margin:0 5px">{{item.value}}</span></a
              >
            </div>
          </a-col>
        </a-row>
        <a-row class="one-line">
          <a-col :span="24">
            <a-form-item label="验收标准">
              <a-textarea v-model:value="current.acceptanceCriteria" placeholder="请输入验收标准" />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row class="one-line">
          <a-col :span="24">
            <a-form-item label="备注">
              <a-textarea placeholder="请输入备注" v-model:value="current.description" />
            </a-form-item>
          </a-col>
        </a-row>
      </div>
    </a-form>
  </a-modal>

  <a-modal
    :visible="stateLi.closeVisible"
    title="关闭风险"
    destroyOnClose
    centered
    width="40%"
    :ok-button-props="{ disabled: btnLoading }"
    @cancel="stateLi.closeVisible = false"
    @ok="handlerClose"
  >
    <a-form ref="closeFormRef" :model="closeCurrent">
      <div class="form-content">
        <a-row>
          <a-col :span="24">
            <a-form-item label="风险关闭备注" name="riskRemarks" :rules="{ required: true, message: '请输入风险关闭备注!' }">
              <a-textarea v-model:value="closeCurrent.riskRemarks" :rows="5" />
            </a-form-item>
          </a-col>
        </a-row>
      </div>
    </a-form>
  </a-modal>

  <a-modal
    :visible="stateLi.visibleNotes"
    title="历史备注"
    width="40vw"
    centered
    destroyOnClose
    :footer="null"
    :getContainer="getModalContainer"
    @cancel="stateLi.visibleNotes = false"
  >
    <a-table
      bordered
      rowKey="taskId"
      :customRow="customRow"
      :columns="stateLi.notesColumns"
      :data-source="stateLi.noteData.descriptionDataList"
      :pagination="false"
      :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)"
    />
  </a-modal>

  <a-modal :visible="stateLi.visibleRisk" title="风险" width="80vw" centered destroyOnClose :footer="null" :getContainer="getModalContainer" @cancel="stateLi.visibleRisk = false">
    <a-table
      bordered
      rowKey="taskId"
      :customRow="customRow"
      :columns="stateLi.riskColumns"
      :data-source="stateLi.riskList"
      :pagination="false"
      :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)"
    >
      <template #bodyCell="{ column, record }">
        <template v-if="column.dataIndex === 'operation'">
          <a-button type="link" :disabled="record.riskState === '关闭'" @click="handlerBeforeClose(record)">关闭</a-button>
        </template>
      </template>
    </a-table>
  </a-modal>

  <a-modal
    :visible="stateLi.visibleFile"
    title="上传附件"
    destroyOnClose
    centered
    :ok-button-props="{ disabled: btnLoading }"
    :getContainer="getModalContainer"
    @cancel="stateLi.visibleFile = false"
    @ok="handlerUpdateFile"
  >

  </a-modal>
  <!--  :ok-button-props="{ disabled: ppmCheckedListLen !== ppmCheckedList.length }" -->
  <a-modal
    :visible="stateLi.okVisible"
    title="检查清单列表"
    destroyOnClose
    centered
    width="40%"
    :getContainer="getModalContainer"
    @cancel="stateLi.okVisible = false"
    @ok="handlerOk"
  >
    <div style="border-bottom:1px solid #d9d9d9;margin-bottom:10px;">
      <div v-for="(item, index) in ppmCheckList" :key="index" class="checkbox-group">
        <div class="label">{{ item.name }}</div>
        <a-checkbox v-for="(item2, index2) in item.value" :key="index2" :checked="ppmCheckedList.includes(item2.checkEntryId)" @change="ppmCheckedListChange(item2.checkEntryId)">
          {{ item2.checkEntry }}
        </a-checkbox>
      </div>
    </div>
    <a-upload :file-list="stateLi.fileList" :before-upload="handlerUpload" @remove="handleRemove"
              accept=".xlsx,.ppt,.pptx,.pdf,.PDF, image/*, .docx, .rp, .xls">
      <a-button type="primary">
        <upload-outlined />
        上传
      </a-button>
    </a-upload>
    <span>支持格式：image/*,.xlsx,.xls,.docx,.rp,.ppt,.pptx,.pdf,.PDF, </span>

  </a-modal>
</div>
</a-spin>
<!-- end vid_s5kfbd6rhc 自定义模板_498yv74w10 -->